/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.graficaluna.ui.otros;

import dto.PersonaDTO;
import java.io.Serializable;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import com.graficaluna.service.otros.ServicioPersona;

/**
 *
 * @author rsaldana
 */
@ManagedBean(name = "persona")
@RequestScoped
public class PersonaBean implements Serializable {

    private Integer codigo;
    private String nombre;
    private String apellido;
    private List<PersonaDTO> listaPersonas;
    private List<PersonaDTO> listaPersonasFiltrada;
    private String mensajeExito;
    private String cadenaBusqueda;

   
    public String iniciar() {
        return "/views/persona/mantPersona.xhtml?faces-redirect=true";
    }
    
    @PostConstruct
    public void listar() {
        ServicioPersona service = new ServicioPersona();
        List<PersonaDTO> list = service.listarPersonas();
        setListaPersonas(list);
    }

    public String grabar() {
        ServicioPersona service =new ServicioPersona();
        service.grabarPersona(new PersonaDTO(this.codigo, this.nombre, this.apellido));
        setMensajeExito("Se grab&#243; correctamente");
        limpiarFormulario();
        return "/views/persona/formPersona.xhtml";
    }

    public String eliminar(PersonaDTO p) {
        ServicioPersona service = new ServicioPersona();
        service.eliminarPersona(p.getCodigo());
        return iniciar();
    }

    public String verFormulario(PersonaDTO p) {      
        if (p != null) {
            setCodigo(p.getCodigo());
            setNombre(p.getNombre());
            setApellido(p.getApellido());
        }
        return "/views/persona/formPersona.xhtml";
    }

    private void limpiarFormulario() {
        setCodigo(null);
        setNombre(null);
        setApellido(null);
    }

    public String buscar() {
        ServicioPersona service = new ServicioPersona();
        List<PersonaDTO> list = service.buscarPersonasPorFiltro(this.cadenaBusqueda);
        setListaPersonas(list);
        return "/views/persona/mantPersona.xhtml";
    }

    //<editor-fold defaultstate="collapsed" desc="setters and getters">
    /**
     * @return the cadenaBusqueda
     */
    public String getCadenaBusqueda() {
        return cadenaBusqueda;
    }

    /**
     * @param cadenaBusqueda the cadenaBusqueda to set
     */
    public void setCadenaBusqueda(String cadenaBusqueda) {
        this.cadenaBusqueda = cadenaBusqueda;
    }

    /**
     * @return the nombre
     */
    public String getNombre() {
        return nombre;
    }

    /**
     * @param nombre the nombre to set
     */
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    /**
     * @return the apellido
     */
    public String getApellido() {
        return apellido;
    }

    /**
     * @param apellido the apellido to set
     */
    public void setApellido(String apellido) {
        this.apellido = apellido;
    }

    /**
     * @return the listaPersonas
     */
    public List<PersonaDTO> getListaPersonas() {
        return listaPersonas;
    }

    /**
     * @param listaPersonas the listaPersonas to set
     */
    public void setListaPersonas(List<PersonaDTO> listaPersonas) {
        this.listaPersonas = listaPersonas;
    }

    /**
     * @return the codigo
     */
    public Integer getCodigo() {
        return codigo;
    }

    /**
     * @param codigo the codigo to set
     */
    public void setCodigo(Integer codigo) {
        this.codigo = codigo;
    }

    /**
     * @return the mensajeExito
     */
    public String getMensajeExito() {
        return mensajeExito;
    }

    /**
     * @param mensajeExito the mensajeExito to set
     */
    public void setMensajeExito(String mensajeExito) {
        this.mensajeExito = mensajeExito;
    }
    //</editor-fold>

   

}
